package leetcode每日一题;

/**
 * 1. 问题描述
 *    给定一个未经排序的整数数组，找到最长且 连续递增的子序列，并返回该序列的长度。
 *    连续递增的子序列 可以由两个下标 l 和 r（l < r）确定，如果对于每个 l <= i < r，都有 nums[i] < nums[i + 1] ，
 *    那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。
 *
 * 2. 算法分析
 *    动态规划(与之前写过的最长连续子序列和的方式类似)
 *
 * 3. 代码实现
 */
@SuppressWarnings("all")
public class 最长递增子序列 {
    public static void main(String[] args) {

    }

    public static int findLengthOfLCIS(int[] nums) {
        if(nums.length == 0) {
            return 0;
        }
        int[] dp = new int[nums.length]; // dp[i]：表示以第i个元素结尾的最大连续递增序列
        dp[0] = 1;
        int max = 1;
        for(int i = 1; i < nums.length; i++) {
            if(nums[i] > nums[i-1]) {
                dp[i] = dp[i-1] + 1;
                max = Math.max(dp[i],max);
            } else {
                dp[i] = 1;
            }
        }
        return max;
    }
}
